<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>gen_projective_mosaic [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_tools.html">工具</a> / <a href="toc_tools_mosaicking.html">Mosaicking</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">gen_projective_mosaic</span><span data-if="c" style="display:none;">T_gen_projective_mosaic</span><span data-if="cpp" style="display:none;">GenProjectiveMosaic</span><span data-if="dotnet" style="display:none;">GenProjectiveMosaic</span><span data-if="python" style="display:none;">gen_projective_mosaic</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">gen_projective_mosaic</span><span data-if="c" style="display:none;">T_gen_projective_mosaic</span><span data-if="cpp" style="display:none;">GenProjectiveMosaic</span><span data-if="dotnet" style="display:none;">GenProjectiveMosaic</span><span data-if="python" style="display:none;">gen_projective_mosaic</span></code> — Combine multiple images into a mosaic image.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>gen_projective_mosaic</b>(<a href="#Images"><i>Images</i></a> : <a href="#MosaicImage"><i>MosaicImage</i></a> : <a href="#StartImage"><i>StartImage</i></a>, <a href="#MappingSource"><i>MappingSource</i></a>, <a href="#MappingDest"><i>MappingDest</i></a>, <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, <a href="#StackingOrder"><i>StackingOrder</i></a>, <a href="#TransformDomain"><i>TransformDomain</i></a> : <a href="#MosaicMatrices2D"><i>MosaicMatrices2D</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_gen_projective_mosaic</b>(const Hobject <a href="#Images"><i>Images</i></a>, Hobject* <a href="#MosaicImage"><i>MosaicImage</i></a>, const Htuple <a href="#StartImage"><i>StartImage</i></a>, const Htuple <a href="#MappingSource"><i>MappingSource</i></a>, const Htuple <a href="#MappingDest"><i>MappingDest</i></a>, const Htuple <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const Htuple <a href="#StackingOrder"><i>StackingOrder</i></a>, const Htuple <a href="#TransformDomain"><i>TransformDomain</i></a>, Htuple* <a href="#MosaicMatrices2D"><i>MosaicMatrices2D</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>GenProjectiveMosaic</b>(const HObject&amp; <a href="#Images"><i>Images</i></a>, HObject* <a href="#MosaicImage"><i>MosaicImage</i></a>, const HTuple&amp; <a href="#StartImage"><i>StartImage</i></a>, const HTuple&amp; <a href="#MappingSource"><i>MappingSource</i></a>, const HTuple&amp; <a href="#MappingDest"><i>MappingDest</i></a>, const HTuple&amp; <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const HTuple&amp; <a href="#StackingOrder"><i>StackingOrder</i></a>, const HTuple&amp; <a href="#TransformDomain"><i>TransformDomain</i></a>, HTuple* <a href="#MosaicMatrices2D"><i>MosaicMatrices2D</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>GenProjectiveMosaic</b>(Hlong <a href="#StartImage"><i>StartImage</i></a>, const HTuple&amp; <a href="#MappingSource"><i>MappingSource</i></a>, const HTuple&amp; <a href="#MappingDest"><i>MappingDest</i></a>, const HHomMat2DArray&amp; <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const HTuple&amp; <a href="#StackingOrder"><i>StackingOrder</i></a>, const HString&amp; <a href="#TransformDomain"><i>TransformDomain</i></a>, HHomMat2DArray* <a href="#MosaicMatrices2D"><i>MosaicMatrices2D</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>GenProjectiveMosaic</b>(Hlong <a href="#StartImage"><i>StartImage</i></a>, const HTuple&amp; <a href="#MappingSource"><i>MappingSource</i></a>, const HTuple&amp; <a href="#MappingDest"><i>MappingDest</i></a>, const HHomMat2DArray&amp; <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const HString&amp; <a href="#StackingOrder"><i>StackingOrder</i></a>, const HString&amp; <a href="#TransformDomain"><i>TransformDomain</i></a>, HHomMat2DArray* <a href="#MosaicMatrices2D"><i>MosaicMatrices2D</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>GenProjectiveMosaic</b>(Hlong <a href="#StartImage"><i>StartImage</i></a>, const HTuple&amp; <a href="#MappingSource"><i>MappingSource</i></a>, const HTuple&amp; <a href="#MappingDest"><i>MappingDest</i></a>, const HHomMat2DArray&amp; <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const char* <a href="#StackingOrder"><i>StackingOrder</i></a>, const char* <a href="#TransformDomain"><i>TransformDomain</i></a>, HHomMat2DArray* <a href="#MosaicMatrices2D"><i>MosaicMatrices2D</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>GenProjectiveMosaic</b>(Hlong <a href="#StartImage"><i>StartImage</i></a>, const HTuple&amp; <a href="#MappingSource"><i>MappingSource</i></a>, const HTuple&amp; <a href="#MappingDest"><i>MappingDest</i></a>, const HHomMat2DArray&amp; <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const wchar_t* <a href="#StackingOrder"><i>StackingOrder</i></a>, const wchar_t* <a href="#TransformDomain"><i>TransformDomain</i></a>, HHomMat2DArray* <a href="#MosaicMatrices2D"><i>MosaicMatrices2D</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>GenProjectiveMosaic</b>(<a href="HObject.html">HObject</a> <a href="#Images"><i>images</i></a>, out <a href="HObject.html">HObject</a> <a href="#MosaicImage"><i>mosaicImage</i></a>, <a href="HTuple.html">HTuple</a> <a href="#StartImage"><i>startImage</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MappingSource"><i>mappingSource</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MappingDest"><i>mappingDest</i></a>, <a href="HTuple.html">HTuple</a> <a href="#HomMatrices2D"><i>homMatrices2D</i></a>, <a href="HTuple.html">HTuple</a> <a href="#StackingOrder"><i>stackingOrder</i></a>, <a href="HTuple.html">HTuple</a> <a href="#TransformDomain"><i>transformDomain</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#MosaicMatrices2D"><i>mosaicMatrices2D</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>.<b>GenProjectiveMosaic</b>(int <a href="#StartImage"><i>startImage</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MappingSource"><i>mappingSource</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MappingDest"><i>mappingDest</i></a>, <a href="HHomMat2D.html">HHomMat2D[]</a> <a href="#HomMatrices2D"><i>homMatrices2D</i></a>, <a href="HTuple.html">HTuple</a> <a href="#StackingOrder"><i>stackingOrder</i></a>, string <a href="#TransformDomain"><i>transformDomain</i></a>, out <a href="HHomMat2D.html">HHomMat2D[]</a> <a href="#MosaicMatrices2D"><i>mosaicMatrices2D</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>.<b>GenProjectiveMosaic</b>(int <a href="#StartImage"><i>startImage</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MappingSource"><i>mappingSource</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MappingDest"><i>mappingDest</i></a>, <a href="HHomMat2D.html">HHomMat2D[]</a> <a href="#HomMatrices2D"><i>homMatrices2D</i></a>, string <a href="#StackingOrder"><i>stackingOrder</i></a>, string <a href="#TransformDomain"><i>transformDomain</i></a>, out <a href="HHomMat2D.html">HHomMat2D[]</a> <a href="#MosaicMatrices2D"><i>mosaicMatrices2D</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>gen_projective_mosaic</b>(<a href="#Images"><i>images</i></a>: HObject, <a href="#StartImage"><i>start_image</i></a>: int, <a href="#MappingSource"><i>mapping_source</i></a>: Sequence[int], <a href="#MappingDest"><i>mapping_dest</i></a>: Sequence[int], <a href="#HomMatrices2D"><i>hom_matrices_2d</i></a>: Sequence[float], <a href="#StackingOrder"><i>stacking_order</i></a>: MaybeSequence[Union[str, int]], <a href="#TransformDomain"><i>transform_domain</i></a>: str) -&gt; Tuple[HObject, Sequence[float]]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">gen_projective_mosaic</span><span data-if="c" style="display:none">gen_projective_mosaic</span><span data-if="cpp" style="display:none">GenProjectiveMosaic</span><span data-if="com" style="display:none">GenProjectiveMosaic</span><span data-if="dotnet" style="display:none">GenProjectiveMosaic</span><span data-if="python" style="display:none">gen_projective_mosaic</span></code> combines the input images contained in
the object <a href="#Images"><i><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></i></a> into a mosaic image <a href="#MosaicImage"><i><code><span data-if="hdevelop" style="display:inline">MosaicImage</span><span data-if="c" style="display:none">MosaicImage</span><span data-if="cpp" style="display:none">MosaicImage</span><span data-if="com" style="display:none">MosaicImage</span><span data-if="dotnet" style="display:none">mosaicImage</span><span data-if="python" style="display:none">mosaic_image</span></code></i></a>.
The relative positions of the images are defined by
3x3 projective transformation matrices.  The array
<a href="#HomMatrices2D"><i><code><span data-if="hdevelop" style="display:inline">HomMatrices2D</span><span data-if="c" style="display:none">HomMatrices2D</span><span data-if="cpp" style="display:none">HomMatrices2D</span><span data-if="com" style="display:none">HomMatrices2D</span><span data-if="dotnet" style="display:none">homMatrices2D</span><span data-if="python" style="display:none">hom_matrices_2d</span></code></i></a> contains a sequence of these linearized
matrices.  The values in <a href="#MappingSource"><i><code><span data-if="hdevelop" style="display:inline">MappingSource</span><span data-if="c" style="display:none">MappingSource</span><span data-if="cpp" style="display:none">MappingSource</span><span data-if="com" style="display:none">MappingSource</span><span data-if="dotnet" style="display:none">mappingSource</span><span data-if="python" style="display:none">mapping_source</span></code></i></a> and
<a href="#MappingDest"><i><code><span data-if="hdevelop" style="display:inline">MappingDest</span><span data-if="c" style="display:none">MappingDest</span><span data-if="cpp" style="display:none">MappingDest</span><span data-if="com" style="display:none">MappingDest</span><span data-if="dotnet" style="display:none">mappingDest</span><span data-if="python" style="display:none">mapping_dest</span></code></i></a> are the indices of the images that the
corresponding matrix applies to.  <a href="#MappingSource"><i><code><span data-if="hdevelop" style="display:inline">MappingSource</span><span data-if="c" style="display:none">MappingSource</span><span data-if="cpp" style="display:none">MappingSource</span><span data-if="com" style="display:none">MappingSource</span><span data-if="dotnet" style="display:none">mappingSource</span><span data-if="python" style="display:none">mapping_source</span></code></i></a>=<i>4</i>
and <a href="#MappingDest"><i><code><span data-if="hdevelop" style="display:inline">MappingDest</span><span data-if="c" style="display:none">MappingDest</span><span data-if="cpp" style="display:none">MappingDest</span><span data-if="com" style="display:none">MappingDest</span><span data-if="dotnet" style="display:none">mappingDest</span><span data-if="python" style="display:none">mapping_dest</span></code></i></a>=<i>7</i> means that the matrix describes
the transformation of the image number <i>4</i> into the
projective plane of image <i>7</i>.  The transformation matrices
between the respective image pairs given by <a href="#MappingSource"><i><code><span data-if="hdevelop" style="display:inline">MappingSource</span><span data-if="c" style="display:none">MappingSource</span><span data-if="cpp" style="display:none">MappingSource</span><span data-if="com" style="display:none">MappingSource</span><span data-if="dotnet" style="display:none">mappingSource</span><span data-if="python" style="display:none">mapping_source</span></code></i></a>
and <a href="#MappingDest"><i><code><span data-if="hdevelop" style="display:inline">MappingDest</span><span data-if="c" style="display:none">MappingDest</span><span data-if="cpp" style="display:none">MappingDest</span><span data-if="com" style="display:none">MappingDest</span><span data-if="dotnet" style="display:none">mappingDest</span><span data-if="python" style="display:none">mapping_dest</span></code></i></a> are typically determined with
<a href="proj_match_points_ransac.html"><code><span data-if="hdevelop" style="display:inline">proj_match_points_ransac</span><span data-if="c" style="display:none">proj_match_points_ransac</span><span data-if="cpp" style="display:none">ProjMatchPointsRansac</span><span data-if="com" style="display:none">ProjMatchPointsRansac</span><span data-if="dotnet" style="display:none">ProjMatchPointsRansac</span><span data-if="python" style="display:none">proj_match_points_ransac</span></code></a>.
</p>
<p>As usual for operators that access image objects (e.g.,
<a href="select_obj.html"><code><span data-if="hdevelop" style="display:inline">select_obj</span><span data-if="c" style="display:none">select_obj</span><span data-if="cpp" style="display:none">SelectObj</span><span data-if="com" style="display:none">SelectObj</span><span data-if="dotnet" style="display:none">SelectObj</span><span data-if="python" style="display:none">select_obj</span></code></a>), the images are numbered starting from 1, i.e.,
<a href="#MappingSource"><i><code><span data-if="hdevelop" style="display:inline">MappingSource</span><span data-if="c" style="display:none">MappingSource</span><span data-if="cpp" style="display:none">MappingSource</span><span data-if="com" style="display:none">MappingSource</span><span data-if="dotnet" style="display:none">mappingSource</span><span data-if="python" style="display:none">mapping_source</span></code></i></a>, <a href="#MappingDest"><i><code><span data-if="hdevelop" style="display:inline">MappingDest</span><span data-if="c" style="display:none">MappingDest</span><span data-if="cpp" style="display:none">MappingDest</span><span data-if="com" style="display:none">MappingDest</span><span data-if="dotnet" style="display:none">mappingDest</span><span data-if="python" style="display:none">mapping_dest</span></code></i></a>, <a href="#StartImage"><i><code><span data-if="hdevelop" style="display:inline">StartImage</span><span data-if="c" style="display:none">StartImage</span><span data-if="cpp" style="display:none">StartImage</span><span data-if="com" style="display:none">StartImage</span><span data-if="dotnet" style="display:none">startImage</span><span data-if="python" style="display:none">start_image</span></code></i></a>,
and <a href="#StackingOrder"><i><code><span data-if="hdevelop" style="display:inline">StackingOrder</span><span data-if="c" style="display:none">StackingOrder</span><span data-if="cpp" style="display:none">StackingOrder</span><span data-if="com" style="display:none">StackingOrder</span><span data-if="dotnet" style="display:none">stackingOrder</span><span data-if="python" style="display:none">stacking_order</span></code></i></a>) must contain values between 1 and the
number of images passed in <a href="#Images"><i><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></i></a>.
</p>
<p>The parameter <a href="#StartImage"><i><code><span data-if="hdevelop" style="display:inline">StartImage</span><span data-if="c" style="display:none">StartImage</span><span data-if="cpp" style="display:none">StartImage</span><span data-if="com" style="display:none">StartImage</span><span data-if="dotnet" style="display:none">startImage</span><span data-if="python" style="display:none">start_image</span></code></i></a> states which image defines the
image plane of the final image, that is, which input image remains
unchanged in the output image. This is usually an image that is
located near the center of the image mosaic.
</p>
<p>The origin of <a href="#MosaicImage"><i><code><span data-if="hdevelop" style="display:inline">MosaicImage</span><span data-if="c" style="display:none">MosaicImage</span><span data-if="cpp" style="display:none">MosaicImage</span><span data-if="com" style="display:none">MosaicImage</span><span data-if="dotnet" style="display:none">mosaicImage</span><span data-if="python" style="display:none">mosaic_image</span></code></i></a> and its size are automatically
chosen so that all of the input images are completely visible.
</p>
<p>The order in which the images are added to the mosaic is given by
the array <a href="#StackingOrder"><i><code><span data-if="hdevelop" style="display:inline">StackingOrder</span><span data-if="c" style="display:none">StackingOrder</span><span data-if="cpp" style="display:none">StackingOrder</span><span data-if="com" style="display:none">StackingOrder</span><span data-if="dotnet" style="display:none">stackingOrder</span><span data-if="python" style="display:none">stacking_order</span></code></i></a>.  The first index in this array
will end up at the bottom of the image stack while the last one will
be on top.  If <i><span data-if="hdevelop" style="display:inline">'default'</span><span data-if="c" style="display:none">"default"</span><span data-if="cpp" style="display:none">"default"</span><span data-if="com" style="display:none">"default"</span><span data-if="dotnet" style="display:none">"default"</span><span data-if="python" style="display:none">"default"</span></i> is given instead of an array of
integers, the canonical order (images in the order used in
<a href="#Images"><i><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></i></a>) will be used.
</p>
<p>The parameter <a href="#TransformDomain"><i><code><span data-if="hdevelop" style="display:inline">TransformDomain</span><span data-if="c" style="display:none">TransformDomain</span><span data-if="cpp" style="display:none">TransformDomain</span><span data-if="com" style="display:none">TransformDomain</span><span data-if="dotnet" style="display:none">transformDomain</span><span data-if="python" style="display:none">transform_domain</span></code></i></a> can be used to determine
whether the domains of <a href="#Images"><i><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></i></a> are also transformed.  Since
the transformation of the domains costs runtime, this parameter
should be used to specify whether this is desired or not.  If
<a href="#TransformDomain"><i><code><span data-if="hdevelop" style="display:inline">TransformDomain</span><span data-if="c" style="display:none">TransformDomain</span><span data-if="cpp" style="display:none">TransformDomain</span><span data-if="com" style="display:none">TransformDomain</span><span data-if="dotnet" style="display:none">transformDomain</span><span data-if="python" style="display:none">transform_domain</span></code></i></a> is set to <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> the domain of
the input images is ignored and the complete images are
transformed.
</p>
<p>On output, the parameter <a href="#MosaicMatrices2D"><i><code><span data-if="hdevelop" style="display:inline">MosaicMatrices2D</span><span data-if="c" style="display:none">MosaicMatrices2D</span><span data-if="cpp" style="display:none">MosaicMatrices2D</span><span data-if="com" style="display:none">MosaicMatrices2D</span><span data-if="dotnet" style="display:none">mosaicMatrices2D</span><span data-if="python" style="display:none">mosaic_matrices_2d</span></code></i></a> contains a set of
3x3 projective transformation matrices that describe
for each image in <a href="#Images"><i><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></i></a> the mapping of the image to its
position in the mosaic.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Images" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></b> (input_object)  </span><span>(multichannel-)image-array <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject</span> (byte / uint2 / real)</span>
</div>
<p class="pardesc">Input images.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="MosaicImage" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MosaicImage</span><span data-if="c" style="display:none">MosaicImage</span><span data-if="cpp" style="display:none">MosaicImage</span><span data-if="com" style="display:none">MosaicImage</span><span data-if="dotnet" style="display:none">mosaicImage</span><span data-if="python" style="display:none">mosaic_image</span></code></b> (output_object)  </span><span>(multichannel-)image <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject *</span> (byte / uint2 / real)</span>
</div>
<p class="pardesc">Output image.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="StartImage" class="parname"><b><code><span data-if="hdevelop" style="display:inline">StartImage</span><span data-if="c" style="display:none">StartImage</span><span data-if="cpp" style="display:none">StartImage</span><span data-if="com" style="display:none">StartImage</span><span data-if="dotnet" style="display:none">startImage</span><span data-if="python" style="display:none">start_image</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Index of the central input image.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="MappingSource" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MappingSource</span><span data-if="c" style="display:none">MappingSource</span><span data-if="cpp" style="display:none">MappingSource</span><span data-if="com" style="display:none">MappingSource</span><span data-if="dotnet" style="display:none">mappingSource</span><span data-if="python" style="display:none">mapping_source</span></code></b> (input_control)  </span><span>integer-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Indices of the source images of the transformations.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="MappingDest" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MappingDest</span><span data-if="c" style="display:none">MappingDest</span><span data-if="cpp" style="display:none">MappingDest</span><span data-if="com" style="display:none">MappingDest</span><span data-if="dotnet" style="display:none">mappingDest</span><span data-if="python" style="display:none">mapping_dest</span></code></b> (input_control)  </span><span>integer-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Indices of the target images of the transformations.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="HomMatrices2D" class="parname"><b><code><span data-if="hdevelop" style="display:inline">HomMatrices2D</span><span data-if="c" style="display:none">HomMatrices2D</span><span data-if="cpp" style="display:none">HomMatrices2D</span><span data-if="com" style="display:none">HomMatrices2D</span><span data-if="dotnet" style="display:none">homMatrices2D</span><span data-if="python" style="display:none">hom_matrices_2d</span></code></b> (input_control)  </span><span>hom_mat2d-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HHomMat2D.html">HHomMat2D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Array of 3x3 projective
transformation matrices.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="StackingOrder" class="parname"><b><code><span data-if="hdevelop" style="display:inline">StackingOrder</span><span data-if="c" style="display:none">StackingOrder</span><span data-if="cpp" style="display:none">StackingOrder</span><span data-if="com" style="display:none">StackingOrder</span><span data-if="dotnet" style="display:none">stackingOrder</span><span data-if="python" style="display:none">stacking_order</span></code></b> (input_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[str, int]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Stacking order of the images in the mosaic.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'default'</span>
    <span data-if="c" style="display:none">"default"</span>
    <span data-if="cpp" style="display:none">"default"</span>
    <span data-if="com" style="display:none">"default"</span>
    <span data-if="dotnet" style="display:none">"default"</span>
    <span data-if="python" style="display:none">"default"</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'default'</span><span data-if="c" style="display:none">"default"</span><span data-if="cpp" style="display:none">"default"</span><span data-if="com" style="display:none">"default"</span><span data-if="dotnet" style="display:none">"default"</span><span data-if="python" style="display:none">"default"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="TransformDomain" class="parname"><b><code><span data-if="hdevelop" style="display:inline">TransformDomain</span><span data-if="c" style="display:none">TransformDomain</span><span data-if="cpp" style="display:none">TransformDomain</span><span data-if="com" style="display:none">TransformDomain</span><span data-if="dotnet" style="display:none">transformDomain</span><span data-if="python" style="display:none">transform_domain</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Should the domains of the input images also be
transformed?</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'false'</span>
    <span data-if="c" style="display:none">"false"</span>
    <span data-if="cpp" style="display:none">"false"</span>
    <span data-if="com" style="display:none">"false"</span>
    <span data-if="dotnet" style="display:none">"false"</span>
    <span data-if="python" style="display:none">"false"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span>, <span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="MosaicMatrices2D" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MosaicMatrices2D</span><span data-if="c" style="display:none">MosaicMatrices2D</span><span data-if="cpp" style="display:none">MosaicMatrices2D</span><span data-if="com" style="display:none">MosaicMatrices2D</span><span data-if="dotnet" style="display:none">mosaicMatrices2D</span><span data-if="python" style="display:none">mosaic_matrices_2d</span></code></b> (output_control)  </span><span>hom_mat2d-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HHomMat2D.html">HHomMat2D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Array of 3x3 projective
transformation matrices that determine the
position of the images in the mosaic.</p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
gen_empty_obj (Images)
for J := 1 to 6 by 1
    read_image (Image, 'mosaic/pcb_'+J$'02')
    concat_obj (Images, Image, Images)
endfor
From := [1,2,3,4,5]
To := [2,3,4,5,6]
Num := |From|
ProjMatrices := []
for J := 0 to Num-1 by 1
    F := From[J]
    T := To[J]
    select_obj (Images, ImageF, F)
    select_obj (Images, ImageT, T)
    points_foerstner (ImageF, 1, 2, 3, 200, 0.3, 'gauss', 'false', \
                      RowJunctionsF, ColJunctionsF, CoRRJunctionsF, \
                      CoRCJunctionsF, CoCCJunctionsF, RowAreaF, \
                      ColAreaF, CoRRAreaF, CoRCAreaF, CoCCAreaF)
    points_foerstner (ImageT, 1, 2, 3, 200, 0.3, 'gauss', 'false', \
                      RowJunctionsT, ColJunctionsT, CoRRJunctionsT, \
                      CoRCJunctionsT, CoCCJunctionsT, RowAreaT, \
                      ColAreaT, CoRRAreaT, CoRCAreaT, CoCCAreaT)
    proj_match_points_ransac (ImageF, ImageT, RowJunctionsF, \
                              ColJunctionsF, RowJunctionsT, \
                              ColJunctionsT, 'ncc', 21, 0, 0, 480, 640, \
                              0, 0.5, 'gold_standard', 1, 4364537, \
                              ProjMatrix, Points1, Points2)
    ProjMatrices := [ProjMatrices,ProjMatrix]
endfor
gen_projective_mosaic (Images, MosaicImage, 2, From, To, ProjMatrices, \
                       'default', 'false', MosaicMatrices2D)
</pre>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="proj_match_points_ransac.html"><span data-if="hdevelop" style="display:inline">proj_match_points_ransac</span><span data-if="c" style="display:none">proj_match_points_ransac</span><span data-if="cpp" style="display:none">ProjMatchPointsRansac</span><span data-if="com" style="display:none">ProjMatchPointsRansac</span><span data-if="dotnet" style="display:none">ProjMatchPointsRansac</span><span data-if="python" style="display:none">proj_match_points_ransac</span></a></code>, 
<code><a href="proj_match_points_ransac_guided.html"><span data-if="hdevelop" style="display:inline">proj_match_points_ransac_guided</span><span data-if="c" style="display:none">proj_match_points_ransac_guided</span><span data-if="cpp" style="display:none">ProjMatchPointsRansacGuided</span><span data-if="com" style="display:none">ProjMatchPointsRansacGuided</span><span data-if="dotnet" style="display:none">ProjMatchPointsRansacGuided</span><span data-if="python" style="display:none">proj_match_points_ransac_guided</span></a></code>, 
<code><a href="vector_to_proj_hom_mat2d.html"><span data-if="hdevelop" style="display:inline">vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none">vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none">VectorToProjHomMat2d</span><span data-if="com" style="display:none">VectorToProjHomMat2d</span><span data-if="dotnet" style="display:none">VectorToProjHomMat2d</span><span data-if="python" style="display:none">vector_to_proj_hom_mat2d</span></a></code>, 
<code><a href="hom_vector_to_proj_hom_mat2d.html"><span data-if="hdevelop" style="display:inline">hom_vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none">hom_vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none">HomVectorToProjHomMat2d</span><span data-if="com" style="display:none">HomVectorToProjHomMat2d</span><span data-if="dotnet" style="display:none">HomVectorToProjHomMat2d</span><span data-if="python" style="display:none">hom_vector_to_proj_hom_mat2d</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="projective_trans_image.html"><span data-if="hdevelop" style="display:inline">projective_trans_image</span><span data-if="c" style="display:none">projective_trans_image</span><span data-if="cpp" style="display:none">ProjectiveTransImage</span><span data-if="com" style="display:none">ProjectiveTransImage</span><span data-if="dotnet" style="display:none">ProjectiveTransImage</span><span data-if="python" style="display:none">projective_trans_image</span></a></code>, 
<code><a href="projective_trans_image_size.html"><span data-if="hdevelop" style="display:inline">projective_trans_image_size</span><span data-if="c" style="display:none">projective_trans_image_size</span><span data-if="cpp" style="display:none">ProjectiveTransImageSize</span><span data-if="com" style="display:none">ProjectiveTransImageSize</span><span data-if="dotnet" style="display:none">ProjectiveTransImageSize</span><span data-if="python" style="display:none">projective_trans_image_size</span></a></code>, 
<code><a href="projective_trans_region.html"><span data-if="hdevelop" style="display:inline">projective_trans_region</span><span data-if="c" style="display:none">projective_trans_region</span><span data-if="cpp" style="display:none">ProjectiveTransRegion</span><span data-if="com" style="display:none">ProjectiveTransRegion</span><span data-if="dotnet" style="display:none">ProjectiveTransRegion</span><span data-if="python" style="display:none">projective_trans_region</span></a></code>, 
<code><a href="projective_trans_contour_xld.html"><span data-if="hdevelop" style="display:inline">projective_trans_contour_xld</span><span data-if="c" style="display:none">projective_trans_contour_xld</span><span data-if="cpp" style="display:none">ProjectiveTransContourXld</span><span data-if="com" style="display:none">ProjectiveTransContourXld</span><span data-if="dotnet" style="display:none">ProjectiveTransContourXld</span><span data-if="python" style="display:none">projective_trans_contour_xld</span></a></code>, 
<code><a href="projective_trans_point_2d.html"><span data-if="hdevelop" style="display:inline">projective_trans_point_2d</span><span data-if="c" style="display:none">projective_trans_point_2d</span><span data-if="cpp" style="display:none">ProjectiveTransPoint2d</span><span data-if="com" style="display:none">ProjectiveTransPoint2d</span><span data-if="dotnet" style="display:none">ProjectiveTransPoint2d</span><span data-if="python" style="display:none">projective_trans_point_2d</span></a></code>, 
<code><a href="projective_trans_pixel.html"><span data-if="hdevelop" style="display:inline">projective_trans_pixel</span><span data-if="c" style="display:none">projective_trans_pixel</span><span data-if="cpp" style="display:none">ProjectiveTransPixel</span><span data-if="com" style="display:none">ProjectiveTransPixel</span><span data-if="dotnet" style="display:none">ProjectiveTransPixel</span><span data-if="python" style="display:none">projective_trans_pixel</span></a></code>
</p>
<h2 id="sec_references">References</h2>
<p>

Richard Hartley, Andrew Zisserman: “Multiple View Geometry in
Computer Vision”; Cambridge University Press, Cambridge; 2000.
<br>
Olivier Faugeras, Quang-Tuan Luong: “The Geometry of Multiple
Images: The Laws That Govern the Formation of Multiple Images of a
Scene and Some of Their Applications”; MIT Press, Cambridge, MA;
2001.
</p>
<h2 id="sec_module">模块</h2>
<p>
Matching</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
